home *** CD-ROM | disk | FTP | other *** search
/ Hyper Animation Series: Viper (Limited Edition) / Hyper Animation Series: VIPER (Limited Edition).iso / pc / SYSTEM / class / BOSS2Attack3.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-08-04  |  4.3 KB  |  159 lines

  1. class BOSS2Attack3 extends EnemyAction {
  2.    private int fxTime = 0;
  3.    private boolean[] fShot = new boolean[3];
  4.    private int fxSpeedY;
  5.    private int fxWeight;
  6.    private int fxSpeedX;
  7.    private int nBound;
  8.  
  9.    public BOSS2Attack3(StgFrame var1) {
  10.       super(var1);
  11.       this.fShot[0] = false;
  12.       this.fShot[1] = false;
  13.       this.fShot[2] = false;
  14.       this.fxSpeedY = 65536;
  15.       this.fxWeight = 0;
  16.       this.fxSpeedX = 0;
  17.       this.nBound = 0;
  18.    }
  19.  
  20.    public boolean action(EnemyIndex var1) {
  21.       BOSS2Index var2 = (BOSS2Index)var1;
  22.       int var3 = super.resource.getEnemySpeed();
  23.       super.resource.getEnemy();
  24.       PlayerShipIndex var4 = super.resource.getPlayerShipIndex();
  25.       int var5 = ((StgObjectIndex)var1).getPosition().getX();
  26.       ((StgObjectIndex)var4).getPosition().getX();
  27.       int var6 = this.fxSpeedX;
  28.       int var7 = this.fxSpeedY;
  29.       var6 = Fixed.Mul(var6, 65536);
  30.       var7 = Fixed.Mul(var7, 65536);
  31.       ((StgObjectIndex)var1).movePosition(var6, var7, 0);
  32.       if (((StgObjectAction)this).checkHitBg(var1, 1)) {
  33.          while(((StgObjectAction)this).checkHitBg(var1, 1)) {
  34.          }
  35.  
  36.          short var8 = (short)(Fixed.Random() >> 4);
  37.          short var9 = 8192;
  38.          short var10 = (short)('ΦÇÇ' - var9 / 2);
  39.          int var11 = 524288 + (Fixed.Random() << 1);
  40.          this.fxSpeedX = Fixed.Sin((short)(var10 + var8));
  41.          this.fxSpeedY = Fixed.Cos((short)(var10 + var8));
  42.          this.fxSpeedX = Fixed.Mul(this.fxSpeedX, var11);
  43.          this.fxSpeedY = Fixed.Mul(this.fxSpeedY, var11);
  44.          this.fxWeight = 24576 + (Fixed.Random() >> 2);
  45.          if (var5 > 12058624) {
  46.             this.fxSpeedX = Fixed.Mul(this.fxSpeedX, 24576);
  47.          } else if (var5 < 8519680) {
  48.             this.fxSpeedX = Fixed.Mul(this.fxSpeedX, 24576);
  49.          }
  50.  
  51.          if (var5 > 14155776) {
  52.             this.fxSpeedX = -this.fxSpeedX;
  53.          } else if (var5 < 6553600) {
  54.             this.fxSpeedX = this.fxSpeedX;
  55.          } else if ((Fixed.Random() & 'ΦÇÇ') != 0) {
  56.             this.fxSpeedX = this.fxSpeedX;
  57.          } else {
  58.             this.fxSpeedX = -this.fxSpeedX;
  59.          }
  60.  
  61.          ++this.nBound;
  62.          if (this.nBound == 8) {
  63.             if (var2.getCount() != 3) {
  64.                var1.setEnemyAction(new BOSS2Nomal(super.resource));
  65.             } else {
  66.                var1.setEnemyAction(new BOSS2TableMake(super.resource));
  67.             }
  68.          }
  69.       }
  70.  
  71.       this.fxSpeedY += this.fxWeight;
  72.       if (this.fxTime >= 0 && !this.fShot[0]) {
  73.          this.putShot(var1);
  74.          this.fShot[0] = true;
  75.       }
  76.  
  77.       if (this.fxTime >= 1048576 && !this.fShot[1]) {
  78.          this.putShot(var1);
  79.          this.fShot[1] = true;
  80.       }
  81.  
  82.       if (this.fxTime >= 2097152 && !this.fShot[2]) {
  83.          this.putShot(var1);
  84.          this.fShot[2] = true;
  85.       }
  86.  
  87.       this.fxTime += var3;
  88.       this.destroy(var1);
  89.       return true;
  90.    }
  91.  
  92.    private boolean putShot(EnemyIndex var1) {
  93.       Enemy var2 = super.resource.getEnemy();
  94.       Position var3 = ((StgObjectIndex)var1).getPosition();
  95.       short var5 = Fixed.FixedToAngle(var3.getY() >> 4);
  96.       short var6 = (short)(16384 + var5);
  97.       short var7 = (short)(var6 / 16);
  98.       short var8 = (short)(-(var6 / 2) + var7 * 2);
  99.       short var9 = var8;
  100.       int var10 = var3.getX() - 327680;
  101.       int var11 = var3.getY() - 1441792;
  102.  
  103.       for(int var12 = 0; var12 != 12; ++var12) {
  104.          int var13 = Fixed.Sin(var9);
  105.          int var14 = Fixed.Cos(var9);
  106.          var13 = Fixed.Mul(var13, 262144 + (Fixed.Random() << 1));
  107.          var14 = Fixed.Mul(var14, 262144 + (Fixed.Random() << 1));
  108.          ES13Index var4 = new ES13Index(new Position(var10, var11, 0), StgData.getSpriteAnimeES01Nomal(), new Position(196608, 196608, 0), 0, new ES13Nomal(super.resource), 0, 98304, 0, 1, var13, var14);
  109.          ((StgObject)var2).add(var4);
  110.          var10 += 65536;
  111.          var9 += var7;
  112.       }
  113.  
  114.       return true;
  115.    }
  116.  
  117.    public boolean checkHitPlayerShip(EnemyIndex var1, PlayerShipIndex var2) {
  118.       super.resource.getEnemy();
  119.       return ((StgObjectIndex)var1).checkHit(var2);
  120.    }
  121.  
  122.    public boolean checkHitPlayerShot(EnemyIndex var1, PlayerShotIndex var2) {
  123.       boolean var5 = false;
  124.       super.resource.getEnemy();
  125.       if (((StgObjectIndex)var1).checkHit(var2)) {
  126.          int var3 = var1.getHitPoint();
  127.          int var4 = var2.getPower();
  128.          var3 -= var4;
  129.          if (var3 < 0) {
  130.             var3 = 0;
  131.          }
  132.  
  133.          var1.setHitPoint(var3);
  134.          var5 = true;
  135.       }
  136.  
  137.       return var5;
  138.    }
  139.  
  140.    public boolean checkHitBom(EnemyIndex var1) {
  141.       return true;
  142.    }
  143.  
  144.    private boolean destroy(EnemyIndex var1) {
  145.       super.resource.getEnemy();
  146.       SpriteAnimeIndex var2 = ((StgObjectIndex)var1).getSpriteAnimeIndex();
  147.       boolean var3 = false;
  148.       Status var4 = super.resource.getStatus();
  149.       if (var1.getHitPoint() == 0) {
  150.          var4.add(var1.getScore());
  151.          var2.setSpriteAnimeData(StgData.getSpriteAnimeDestroyA());
  152.          var1.setEnemyAction(new BOSSDestroy(super.resource));
  153.          var3 = true;
  154.       }
  155.  
  156.       return var3;
  157.    }
  158. }
  159.